package icu.sunway.gushenBlogBackEnd.Service;

import com.baomidou.mybatisplus.extension.service.IService;
import icu.sunway.gushenBlogBackEnd.Entity.Data.UserDO;
import icu.sunway.gushenBlogBackEnd.Entity.View.ResultVO;
import icu.sunway.gushenBlogBackEnd.Entity.View.User.*;

public interface UserService extends IService<UserDO> {
    UserDO getUserById(String userId);

    ResultVO<String> login(UserLoginVO userLoginVO);

    ResultVO<UserVO> getUserInfo(String token);

    ResultVO<String> updateUserInfo(String token, UserUpdateInfoVO userUpdateInfoVO);

    ResultVO<String> register(UserRegisterVO userRegisterVO);

    ResultVO<Boolean> sendVerifyCodeByToken(String token);

    ResultVO<Boolean> changePassword(UserChangePasswordVO userChangePasswordVO, String token);

    ResultVO<Boolean> resetPassword(UserForgetPasswordVO userForgetPasswordVO);

    ResultVO<Boolean> checkAdmin(String token);

    ResultVO<Boolean> updateUserAvatar(String avatar, String token);
}
